Transitioning continuous data protection and replication (CDP/R) services from one CDP/R appliance node to another CDP/R appliance node in a cluster of appliance nodes in a manner that is not disruptive to application hosts relying on the CDP/R services is a significant challenge, but nevertheless desirable for several reasons. First, it may enable load balancing of CDP/R services in one or more clusters of appliance nodes. Secondly, it may allow the upgrade of a CDP/R appliance node without disrupting the services provided to one or more application hosts.
Currently, transitioning CDP/R services from a first appliance node to a second appliance node often requires disrupting input/output received from an application on a host node relying on the first appliance node until the host node is reconfigured to use the second appliance node. This produces a disruption in CDP/R services that is often unacceptable to many applications relying on CDP/R services.
Another approach would be to require a host node to have two or more paths from a host node to an appliance cluster and to use two or more separate appliance nodes for CDP/R services. This approach is expensive and very complex. This can be achieved using an Active/Passive configuration or an Active/Active Configuration. Either approach requires a dynamic multi-pathing (DMP) driver on the host node.
An Active/Passive configuration may involve one appliance node with an active path to the host and one or more appliance nodes with passive paths to the host. During failover a cluster controller of the appliance cluster must be notified by the host node of the new active path for the host. This requires extra coordination and software on the host. Additionally, there may be conflicts and performance degradation if more than one host node fails and tries to utilize the same appliance node. The resulting conflicts and coordination problems between hosts that may choose different paths to the same appliance node (i.e.—different ports but on the same host bus adapter of an appliance node) can result in severe performance degradation.
An Active/Active approach requires a host node to have two or more appliance nodes with active paths to the ports. It is very difficult to synchronize data writes across two or more appliance nodes. This approach also requires a distributed locking mechanism to be implemented amongst the various active nodes, which is not inherently scalable.
In view of the foregoing, it may be understood that there are significant problems and shortcomings associated with current methods of transitioning CDP/R services.